package com.nuoniu.sibanyun.entity.crm.call;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.nuoniu.sibanyun.common.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.time.LocalDate;
import java.time.LocalDateTime;

/**
 * <p>
 * 客户管理-外呼任务管理
 * </p>
 *
 * @author 白强
 * @since 2022-03-19
 */
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("crm_call_task")
@ApiModel(value="CrmCallTask对象", description="客户管理-外呼任务管理")
public class CrmCallTask extends BaseEntity {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "租户ID")
    @TableField("company_id")
    private Integer companyId;

    @ApiModelProperty(value = "任务名称")
    @TableField("task_name")
    private String taskName;

    @ApiModelProperty(value = "联系类型 1.销售联系 2.客户关怀3.售后回访4.投诉回访5.服务支持6.维修维护7.客户投诉")
    @TableField("task_type")
    private Integer taskType;

    @ApiModelProperty(value = "开始时间")
    @TableField("start_time")
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd" )
    private LocalDate startTime;

    @ApiModelProperty(value = "结束时间")
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd" )
    @TableField("end_time")
    private LocalDate endTime;

    @ApiModelProperty(value = "号码数")
    @TableField("mobile_count")
    private Integer mobileCount;

    @ApiModelProperty(value = "已拨打数量")
    @TableField("dialed_count")
    private Integer dialedCount;

    @ApiModelProperty(value = "未拨打数量")
    @TableField("wait_count")
    private Integer waitCount;

    @ApiModelProperty(value = "任务接通数量")
    @TableField("task_connect_count")
    private Integer taskConnectCount;

    @ApiModelProperty(value = "呼叫次数")
    @TableField("call_count")
    private Integer callCount;

    @ApiModelProperty(value = "呼叫接通数量")
    @TableField("connect_count")
    private Integer connectCount;

    @ApiModelProperty(value = "总通话时长（秒）")
    @TableField("total_talk_time")
    private Integer totalTalkTime;

    @ApiModelProperty(value = "创建人ID")
    @TableField("create_user_id")
    private Integer createUserId;

    @ApiModelProperty(value = "创建人姓名")
    @TableField("create_user_name")
    private String createUserName;

    @ApiModelProperty(value = "创建时间")
    @TableField("create_date")
    private LocalDateTime createDate;

    @ApiModelProperty(value = "任务结束时间")
    @TableField("task_end_time")
    private LocalDateTime taskEndTime;

    @ApiModelProperty(value = "状态(0:未开始 1.进行中 2.已完成 3.未完成)")
    @TableField("status")
    private Integer status;

    @ApiModelProperty(value = "业务状态(0:正常 1:关闭 100：删除)")
    @TableField("business_status")
    private Integer businessStatus;

    @ApiModelProperty(value = "分配人ID")
    @TableField("distribute_user_id")
    private Integer distributeUserId;

    @ApiModelProperty(value = "分配人姓名")
    @TableField("distribute_user_name")
    private String distributeUserName;

    @ApiModelProperty(value = "分配时间")
    @TableField("distribute_date")
    private LocalDateTime distributeDate;

    @ApiModelProperty(value = "快呼类型 1：人工 2：去电放音 ")
    @TableField("call_type")
    private Integer callType;

    @ApiModelProperty(value = "语音ID")
    @TableField("voice_id")
    private Integer voiceId;

    @ApiModelProperty(value = "语音名称")
    @TableField("voice_name")
    private String voiceName;

    @ApiModelProperty(value = "语音地址")
    @TableField("voice_url")
    private String voiceUrl;

    @ApiModelProperty(value = "每通电话呼叫间隔N秒")
    @TableField("interval_time")
    private Integer intervalTime;

    @ApiModelProperty(value = "一个卡槽拨打N次后自动切换卡槽 ")
    @TableField("sd_call_times")
    private Integer sdCallTimes;

    @ApiModelProperty(value = "备注 200字内")
    @TableField("remarks")
    private String remarks;

}
